package com.zhaoliang;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 目标：实验查询数据库表中所有数据输出
 */
public class Demo05 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 1. 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2. 通过驱动管理器获取数据库连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/purchase?useSSL=false", "root", "123456");
        // 3. 编写Sql语句
        String sql = "select * from t_good";
        // 4. 创建预处理命令对象
        PreparedStatement psmt = conn.prepareStatement(sql);
        // 5. 执行查询，返回结果集
        ResultSet rs = psmt.executeQuery();
        // 6. 解析结果集
        // 6-1. 创建存储物品的集合
        List<Good> goodList = new ArrayList<>();
        // 6-2. 循环获取每一行数据
        while (rs.next()) {
            // 6-3. 获取每一行记录的每个字段值
            int gid = rs.getInt(1);
            String gname = rs.getString(2);
            int price = rs.getInt(3);
            int count = rs.getInt(4);
            String remark = rs.getString(5);

            // 6-4. 封装逻辑模型
            Good good = new Good(gid, gname, price, count, remark);
            // 6-5. 把模型添加到集合中
            goodList.add(good);
        }
        // 7. 打印结果
        goodList.forEach(System.out::println);
        // 8. 释放资源
        rs.close();
        psmt.close();
        conn.close();
    }
}